package com.smartleanx.module.hrm.dal.mysql.companysystem;

import java.util.*;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.smartleanx.framework.common.pojo.PageResult;
import com.smartleanx.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.smartleanx.framework.mybatis.core.mapper.BaseMapperX;
import com.smartleanx.module.hrm.dal.dataobject.companysystem.CompanySystemDO;
import org.apache.ibatis.annotations.Mapper;
import com.smartleanx.module.hrm.controller.admin.companysystem.vo.*;

/**
 * 公司制度库 Mapper
 *
 * @author 精益大师
 */
@Mapper
public interface CompanySystemMapper extends BaseMapperX<CompanySystemDO> {

    default PageResult<CompanySystemDO> selectPage(CompanySystemPageReqVO reqVO) {
        return selectPage(reqVO, new LambdaQueryWrapperX<CompanySystemDO>()
                .inIfPresent(CompanySystemDO::getId,reqVO.getId())
                .likeIfPresent(CompanySystemDO::getName, reqVO.getName())
                .eqIfPresent(CompanySystemDO::getCode, reqVO.getCode())
                .eqIfPresent(CompanySystemDO::getTypeId, reqVO.getTypeId())
                .eqIfPresent(CompanySystemDO::getComplianceStatus, reqVO.getComplianceStatus())
                .eqIfPresent(CompanySystemDO::getConfirmStatus, reqVO.getConfirmStatus())
                .eqIfPresent(CompanySystemDO::getConfirmInfo, reqVO.getConfirmInfo())
                .betweenIfPresent(CompanySystemDO::getCreateTime, reqVO.getCreateTime())
                .orderByDesc(CompanySystemDO::getId));
    }
    default List<CompanySystemDO> getCompanySystemListByTypeId(Collection<Long> ids){
        return selectList(new LambdaQueryWrapper<CompanySystemDO>()
        .in(CompanySystemDO::getTypeId,ids));
    }
    default List<CompanySystemDO> getCompanySystemList(Collection<Long> ids,String name){
        return selectList(new LambdaQueryWrapperX<CompanySystemDO>()
        .in(CompanySystemDO::getId,ids)
        .likeIfPresent(CompanySystemDO::getName,name));
    }




}
